//
//  HSBasicController.swift
//  SchoolDemo
//
//  Created by rimi on 16/10/8.
//  Copyright © 2016年 YQ. All rights reserved.
//

import UIKit

class HSBasicController: UITableViewController {

    //刷新控件
    let refreshC = PXRefreshControl()
    //记录刷新状态的属性
    var isPull: Bool = false
    
    override func viewDidLoad() {
        super.viewDidLoad()

        //添加刷新控件
        tableView.addSubview(refreshC)
        //设置监听
        refreshC.addTarget(self, action: #selector(loadData), for: .valueChanged)
       
    }
    //加载数据
    func loadData() {
        //开始加载刷新视图
        refreshC.beginRefreshing()
        //模拟延时
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2) {[weak self] in
     
            //结束刷新控件
            self?.refreshC.endRefreshing()
            
            self?.isPull = false
        }
    }
}

// MARK: - Table view data source
extension HSBasicController {

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return 0
    }
    
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        return UITableViewCell()
    }
    //即将显示某行cell时回调
    override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        
        //获得当前行号
        let row = indexPath.row
        //获得表格试图的总组数
        let section = tableView.numberOfSections - 1
        if row < 0 || section < 0 {
            return
        }
        //获得最后一组的总行数
        let lastRows = tableView.numberOfRows(inSection: section)
        //当前调用的行等于表格试图最后一组的总行数减1
        if row == lastRows - 1 && indexPath.section == section && !isPull{
            //纪录刷新状态
            isPull = true
            //调用请求数据的方法
            loadData()
        }
    }

}

